ais_message_types = {
    1: {
        "name": "Type 1",
        "description": "位置报告（航行中使用引擎）",
        "fields": ["msg_type", "mmsi", "status", "turn", "speed", "accuracy", "lon", "lat", "course", "heading", "second", "maneuver"],
        "usage": "船舶动态信息，包括航速、航向、经纬度等"
    },
    2: {
        "name": "Type 2",
        "description": "位置报告（锚泊中）",
        "fields": ["msg_type", "mmsi", "status", "turn", "speed", "accuracy", "lon", "lat", "course", "heading", "second"],
        "usage": "与 Type 1 类似，但状态为“锚泊”"
    },
    3: {
        "name": "Type 3",
        "description": "位置报告（已定义，保留用于未来使用）",
        "fields": ["msg_type", "mmsi", "status", "turn", "speed", "accuracy", "lon", "lat", "course", "heading", "second"],
        "usage": "通常用于特殊设备或备用"
    },
    4: {
        "name": "Type 4",
        "description": "基台位置报告",
        "fields": ["msg_type", "mmsi", "year", "month", "day", "hour", "minute", "second", "accuracy", "lon", "lat", "epfd"],
        "usage": "用于岸基站发送的位置信息"
    },
    5: {
        "name": "Type 5",
        "description": "静态与航行相关信息",
        "fields": ["msg_type", "mmsi", "imo", "callsign", "name", "ship_type", "to_bow", "to_stern", "to_port", "to_starboard", "draught", "destination", "dte"],
        "usage": "船舶静态信息，如船名、呼号、IMO 编号、目的港等"
    },
    6: {
        "name": "Type 6",
        "description": "二进制消息地址",
        "fields": ["msg_type", "mmsi", "seq_num", "dest_mmsi", "retransmit", "app_id", "data"],
        "usage": "用于向特定船舶发送二进制数据"
    },
    7: {
        "name": "Type 7",
        "description": "二进制确认消息",
        "fields": ["msg_type", "mmsi", "num_acks", "mmsi_1", "seq_num_1", "..."],
        "usage": "用于确认收到 Type 6 消息"
    },
    8: {
        "name": "Type 8",
        "description": "广播二进制消息",
        "fields": ["msg_type", "mmsi", "app_id", "data"],
        "usage": "用于广播通用二进制数据，如气象信息"
    },
    9: {
        "name": "Type 9",
        "description": "空中位置报告",
        "fields": ["msg_type", "mmsi", "alt", "sog", "accuracy", "lon", "lat", "cog", "second", "dte", "assigned", "raim", "radio"],
        "usage": "用于飞机或其他空中交通工具报告位置"
    },
    10: {
        "name": "Type 10",
        "description": "UTC 查询",
        "fields": ["msg_type", "mmsi", "dest_mmsi", "spare"],
        "usage": "请求其他设备发送 UTC 时间信息"
    },
    11: {
        "name": "Type 11",
        "description": "UTC 和基台位置报告",
        "fields": ["msg_type", "mmsi", "year", "month", "day", "hour", "minute", "second", "accuracy", "lon", "lat", "epfd"],
        "usage": "与 Type 4 类似，但包含时间戳"
    },
    12: {
        "name": "Type 12",
        "description": "寻址安全相关消息",
        "fields": ["msg_type", "mmsi", "seq_num", "dest_mmsi", "retransmit", "text"],
        "usage": "用于向特定 MMSI 发送文本信息"
    },
    13: {
        "name": "Type 13",
        "description": "安全相关确认消息",
        "fields": ["msg_type", "mmsi", "num_acks", "mmsi_1", "seq_num_1", "..."],
        "usage": "用于确认收到 Type 12 消息"
    },
    14: {
        "name": "Type 14",
        "description": "文本公告消息",
        "fields": ["msg_type", "mmsi", "text"],
        "usage": "广播文本信息，如天气警告"
    },
    15: {
        "name": "Type 15",
        "description": "询问消息",
        "fields": ["msg_type", "mmsi", "num_requests", "mmsi_1", "type_1", "offset_1", "slot_increment_1", "slots_1", "..."],
        "usage": "用于请求其他设备发送特定类型的消息"
    },
    16: {
        "name": "Type 16",
        "description": "分配频段请求",
        "fields": ["msg_type", "mmsi", "mmsi_1", "offset_1", "increment_1", "mmsi_2", "offset_2", "increment_2"],
        "usage": "用于请求特定通信频段资源"
    },
    17: {
        "name": "Type 17",
        "description": "GNSS 广播二进制信息",
        "fields": ["msg_type", "mmsi", "lon", "lat", "data"],
        "usage": "用于广播 GPS 等 GNSS 数据"
    },
    18: {
        "name": "Type 18",
        "description": "标准班轮报告",
        "fields": ["msg_type", "mmsi", "speed", "accuracy", "lon", "lat", "course", "heading", "second", "regional", "cs", "display", "dsc", "band", "msg22", "assigned", "raim", "radio"],
        "usage": "用于 Class B 船舶报告航行信息"
    },
    19: {
        "name": "Type 19",
        "description": "扩展班轮报告",
        "fields": ["msg_type", "mmsi", "speed", "accuracy", "lon", "lat", "course", "heading", "second", "regional", "name", "ship_type", "to_bow", "to_stern", "to_port", "to_starboard", "mothership_mmsi"],
        "usage": "Class B 船舶报告，包含船名、尺寸等扩展信息"
    },
    20: {
        "name": "Type 20",
        "description": "数据链接管理消息",
        "fields": ["msg_type", "mmsi", "offset_1", "number_1", "timeout_1", "increment_1", "..."],
        "usage": "用于管理 TDMA 时隙资源"
    },
    21: {
        "name": "Type 21",
        "description": "助航设备报告",
        "fields": ["msg_type", "mmsi", "aid_type", "name", "accuracy", "lon", "lat", "to_bow", "to_stern", "to_port", "to_starboard", "epfd", "second", "off_position", "regional", "raim", "virtual_aid", "assigned", "name_extension"],
        "usage": "用于灯塔、浮标、雷达信标等助航设备上报信息"
    },
    24: {
        "name": "Type 24",
        "description": "静态数据报告（分为 Part A 和 Part B）",
        "fields": {
            "Part A": ["msg_type", "mmsi", "part_number", "name", "callsign", "ship_type", "vendor_id", "model", "serial", "mothership_mmsi"],
            "Part B": ["msg_type", "mmsi", "part_number", "ship_type", "vendor_id", "model", "serial", "mothership_mmsi", "dim_to_bow", "dim_to_stern", "dim_to_port", "dim_to_starboard", "fix_type", "dte", "assigned", "spare"]
        },
        "usage": "用于 Class A 设备上报船舶静态信息，需两片组合解析"
    },
    25: {
        "name": "Type 25",
        "description": "单一寻址二进制消息（简化版）",
        "fields": ["msg_type", "mmsi", "addressed", "dest_mmsi", "app_id", "data"],
        "usage": "用于向指定 MMSI 发送简化的二进制数据"
    },
    26: {
        "name": "Type 26",
        "description": "组织二进制消息",
        "fields": ["msg_type", "mmsi", "addressed", "dest_mmsi", "app_id", "data", "bit_rate", "application"],
        "usage": "由组织机构使用，支持自定义应用层协议"
    },
    27: {
        "name": "Type 27",
        "description": "高精度位置报告",
        "fields": ["msg_type", "mmsi", "latitude", "longitude", "position_accuracy", "raim", "gnss"],
        "usage": "适用于 Class B 设备，提供更高精度的定位信息"
    }
}
